package dao;

import entity.User;
import org.apache.ibatis.annotations.Param;

/**
 * 用户数据访问接口
 */
public interface UserMapper {

    /**
     * 根据用户名和密码查询用户（登录验证）
     * @param username 用户名
     * @param password 密码（实际项目中应存储加密后的密码）
     * @return 用户实体，查询不到返回null
     */
    User selectByUsernameAndPassword(
            @Param("username") String username,
            @Param("password") String password);

    /**
     * 根据用户ID查询用户信息
     * @param id 用户ID
     * @return 用户实体
     */
    User selectById(Long id);

    /**
     * 新增用户
     * @param user 用户实体
     */
    void insert(User user);

    /**
     * 更新用户信息
     * @param user 用户实体（含ID）
     * @return 影响行数
     */
    int updateById(User user);

    /**
     * 更新用户密码
     * @param id 用户ID
     * @param newPassword 新密码
     * @return 影响行数
     */
    int updatePassword(
            @Param("id") Long id,
            @Param("newPassword") String newPassword);
}
